A codec is generally a piece of compression and transmission software that may be used to compress or convert one signal, generally an analog voice signal, such as a phone call, into a second digital signal that is ready for transmission via a communication network, in one example, the public Internet. Once this digital signal has been transmitted from a first communication node and has been received at a second communication, a codec at the receiving or second communication node may convert the digital signal back into an analog voice signal. Codecs, however, can often vary significantly following compression and transmission which can substantially affect voice transmission quality.
A number of codecs exist, which provides the organizations using them the flexibility to choose a codec that optimizes that organizations' available bandwidth and computational power. For the various codecs to optimally function, the receiving or second communication node must have access to the same codec with which the sending or first communication node compressed and transmitted the data signal. A codec mismatch would result in the data signal transmission not being received at the second communication node.
In the event of a network disruption, or a “network event,” the probability of a codec mismatch increases, as the pathways through which a communication session may be routed can be altered, for example, to navigate around the network event, and in some cases may result in the communication session being delivered to a “different” destination node or second communication node.
Therefore, a reliable system and method are needed for a sending or first communication node to select an optimal codec, which may be transmitted to a receiving or second communication node which either accepts that optimal codec or which codec can be dynamically switched prior to reception at the receiving or second communication node. So if necessary, a codec may by dynamically selected for a certain data signal to optimize the transmission of that data signal from the sending or first communication node, especially in the event of a network disruption or network event which alters the predetermined routing path of a communication session (i.e., a communication session needs to be routed via different pathways to circumvent a service disruption or system failure).